03 SingRain

Prêt(e) à chanter sous la pluie ?

Pour faire suite au précédent épisode (animation et réaction au clavier), cet atelier propose de créer un premier jeu interactif qui a pour but de collectionner les gouttes de pluie...

Objectifs

Quelle est la meilleure utilité à récolter l’eau de pluie ?

Réduire la densité hygromètrique de l'atmosphère Agrémenter des cocktails d'eau déminéralisée Utiliser l'acidité de cette eau pour dissoudre la rouille sur un métal Arroser le jardin et ainsi économiser l'eau potable

Le but est d'avoir un menu au lancement du jeu qui permette de joueur ou quitter.

Version statique

Commençons donc par afficher un menu avec 2 entrées :

03 Menu1

Réalisé par le code ci-dessous:

03 Menu2

Cette version est purement visuelle et l'utilisateur ne peut pas encore interagir. Toutefois c'est déjà une bonne base qui présente une idée du résultat.

Version réactive

On va maintenant adapter la version statique pour que l'appui des flèches sur le clavier permette de choisir l'option.

Sélection

Pour réagir aux flèches du clavier, on commence par se souvenir que la console est un système de coordonnées à 2 dimensions et donc que le texte "Jouer" arrive à la ligne numéro 7:

03 Menu3

Ceci est utile parce que si l'utilisateur appuie sur la flèche en bas, on devra réécrire le texte "Jouer" sans le fond rouge. Et par contre, on devra réécrire le texte "Quitter" avec le fond rouge :

03 Menu4

03 Menu5

Un peu de cosmétique

Pour s'approprier intégralement la console, la commande suivante insérée au tout début du programme améliore le rendu:

Effacer l'écran.

Pour résumer, on peut démarrer tout programme de jeu avec les commandes suivantes:

Effacer l'écran.
Masquer le curseur.

Validation

Pour l'instant le programme quitte si on appuie sur Enter. On va donc réagir à cela on regardant quelle était la dernière option choisie:

03 Menu6

03 Jeu6

On va maintenant se concentrer sur le jeu qui habituellement est une répétition d'opérations:

  1. Afficher les éléments graphiques
  2. Déplacer les éléments graphiques automatisés
  3. Déplacer les éléments graphiques selon les entrées utilisateur (le clavier)
  4. Mettre à jour les compteurs (score, vie, ...)
  5. Recommencer

Cela veut dire que le code du jeu sera à l'intérieur d'une répétition avec comme condition d'arrêt la fatigue de l'utilisateur qui voudra arrêter.

Pour faire simple, l'appui sur la touche Escape (Échap) quittera donc le jeu et dans ce cas on affiche aussi le message d'au revoir :

03 Jeu1

On va maintenant faire tomber une goutte de pluie:

03 Jeu2

Pour réaliser cette animation, on reprend les élément vus jusque là, soit:

  1. Afficher un caractère
  2. Attendre quelques millisecondes
  3. Effacer le caractère
  4. Afficher le caractère sur une position légèrement décalée
  5. Et on recommence...

Ce qui donne:

03 Jeu3

Il faut maintenant ajouter le collecteur. Ce dernier ressemble beaucoup à ce qui a été fait précédemment en faisant bouger un caractère avec les touches fléchées:

03 Jeu4

Avec un code ressemblant à ceci:

03 Jeu5

L'intérêt du jeu encore relatif jusqu'à présent va augmenter en comptabilisant et affichant les scores:

03 Jeu6

correspondant aux modifications suivantes:

03 Jeu7

Il est temps de faire le point sur les compétences acquises: